package com.xuecheng.content.service;


import com.baomidou.mybatisplus.extension.service.IService;
import com.xuecheng.base.model.PageParams;

import com.xuecheng.base.model.PageResult;
import com.xuecheng.base.resutl.RestResponse;
import com.xuecheng.content.model.dto.AddCourseDto;
import com.xuecheng.content.model.dto.CourseBaseInfoDto;
import com.xuecheng.content.model.dto.EditCourseDto;
import com.xuecheng.content.model.dto.QueryCourseParamsDto;
import com.xuecheng.content.model.po.CourseBase;
import org.springframework.transaction.annotation.Transactional;

/**
 * <p>
 * 课程基本信息 服务类
 * </p>
 *
 * @author author
 * @since 2024-06-22
 */
public interface ICourseBaseService extends IService<CourseBase> {

    /**
     * 课程查询接口
     * @param pageParams 分页参数
     * @param queryCourseParamsDto 分页条件
     * @return com.xuecheng.base.model.PageRestResponse<com.xuecheng.content.model.po.CourseBase>
     */
    public PageResult<CourseBase> queryCourseBaseList(PageParams pageParams, QueryCourseParamsDto queryCourseParamsDto);
    /**
     * @description 添加课程基本信息
     * @param companyId  教学机构id
     * @param addCourseDto  课程基本信息
     * @return com.xuecheng.content.model.dto.CourseBaseInfoDto
     * @author Mr.M
     * @date 2022/9/7 17:51
     */
    @Transactional
    CourseBaseInfoDto createCourseBase(Long companyId, AddCourseDto addCourseDto);

    /**
     * @description 根据id查询课程基本信息
     * @param courseId  课程id
     * @return com.xuecheng.content.model.dto.CourseBaseInfoDto
     * @author Huangyao
     * @date 2024/06/24 17:22
     */
    public CourseBaseInfoDto getCourseBaseInfo(long courseId);

    /**
     * @description 根据修改课程基本信息
     * @param companyId 课程id
     * @param editCourseDto
     */
    @Transactional
    CourseBaseInfoDto updateCourseBase(Long companyId, EditCourseDto editCourseDto);

    /**
     * 删除课程
     * @param courseId 课程id
     * @param companyId 机构id
     * @return
     */
    RestResponse deleteCourseBase(Long courseId, Long companyId);
}
